package ecmnext.business;

/***************************************************************/
/*                     SOFTWARE SECTION                        */
/***************************************************************/
/*
 * <p>Name: ECMNext</p>
 * <p>Description: Simulation of the platform of trading Software</p>
 * <p>Licence: General Public License</p>
 * <p>Organisation: EC Marseille</p>
 * <p>Persons involved in the project : groupe Plateforme de Trading</p>
 * <p>Current version: 1.0</p>
 */


/***************************************************************/
/*                      IMPORT SECTION                         */
/***************************************************************/

import javax.swing.*;
import javax.swing.event.*;

import ecmnext.utils.*;

/***************************************************************/
/*           GeneralParameters INTERFACE SECTION               */
/***************************************************************/
/**
 *
 * <p>Title : GeneralParameters</p>
 * <p>Description : </p>
 * @author Xuewen YANG ET Antoine COUDERC
 * @version 1.0
 */
public interface GeneralParameters extends XmlLoadable, XmlExportable {

  public JPanel getGeneralParameterSetupGui();

  public void addPeriodCountChangeListener(ChangeListener listener);
  public void removePeriodCountChangeListener(ChangeListener listener);

  public void addPeriodDurationChangeListener(ChangeListener listener);
  public void removePeriodDurationChangeListener(ChangeListener listener);

  public boolean getAfterSetupJoiningAllowed();
  public void setAfterSetupJoiningAllowed(boolean allowed);

  public String getSetupFileName();
  public void setSetupFileName(String setupFileName);

  public String getXMLVersion();
  public void setXMLVersion(String xmlVersion);

  public String getLoggingFileName();
  public void setLoggingFileName(String name);

  public int getPeriodCount();
  public void setPeriodCount(int periodCount);

  public JSpinner getPeriodCountSpinner();
  public JSpinner getPeriodDurationSpinner();

  public String getWorkingDirectory();
  public void setWorkingDirectory(String cwd);

  public float getInterestRate(int index) ;
  public void setInterestRate(int index,float rate);

  public int getPeriodDuration();
  public void setPeriodDuration(int duration);

  public void initializeGeneralParameters();
}
